/*
 * FuzzyValue.hpp
 *
 *  Created on: 08-01-2011
 *      Author: Piotr
 */

#pragma once

/**
 * Helper for writing rules in fuzzy resolution
 */
class FuzzyValue
{
	private:
		float value;
	public:
		FuzzyValue();
		explicit FuzzyValue(float value);

		float getFloatValue() const;

		FuzzyValue operator-() const;
		FuzzyValue operator+(const FuzzyValue& other) const;
		FuzzyValue operator*(const FuzzyValue& other) const;

		FuzzyValue& operator+=(const FuzzyValue& other);
		FuzzyValue& operator*=(const FuzzyValue& other);

		FuzzyValue& operator=(const FuzzyValue& other);
		bool operator==(const FuzzyValue& other) const;
		bool operator!=(const FuzzyValue& other) const;
};
